package cn.wp.ewallet.wallet.service;

import cn.wp.common.core.model.WpPage;
import cn.wp.ewallet.wallet.model.dto.TransAccountLogDto;
import cn.wp.ewallet.wallet.model.dto.TransAccountLogReqDto;
import cn.wp.ewallet.wallet.model.dto.TransAccountLogRespDto;

import java.util.List;

/**
 * @ClassName TransAccountLogService
 * @Author ruixule
 * @Description TODO
 * @Date 2020/1/8 9:50
 */
public interface TransAccountLogService {
    /**
     * 通过钱包地址查询 转账记录
     * @return
     */

     WpPage<TransAccountLogRespDto> getTransAccountLogByWalAdd(WpPage wpPage);
    /**
     * 查询充值记录
     * @param address
     * @param page
     * @return
     */
    WpPage<TransAccountLogDto> getALLRecharge(String address, WpPage page);

    /**
     * 保存转账记录
     * @param transAccountLogDto
     */
    void saveTransAccountLog(TransAccountLogDto transAccountLogDto);

    /**
     * 查询待确认中的转账列表-区块链上的交易
     * @return
     */
    List<TransAccountLogDto> getPendingList();


    /**
     * 更新交易状态
     * @param transAccountLogDto
     */
    void modifyTransAccountLog(TransAccountLogDto transAccountLogDto);


    /**
     * 查询自动归集信息
     * @param transAccountLogReqDto
     * @param wpPage
     * @return
     */
    WpPage<TransAccountLogRespDto> getCollectLog(TransAccountLogReqDto transAccountLogReqDto, WpPage wpPage);

    /**
     * 根据日志ID查询转账记录
     * @param logId
     * @return
     */
    TransAccountLogRespDto getLogById(String logId);


    /**
     * 查询系统内的转账记录
     * @param wpPage
     * @return
     */
    WpPage<TransAccountLogRespDto> getTransAccountLogsInSys(TransAccountLogReqDto transAccountParamsDto, WpPage wpPage);
}
